home *** CD-ROM | disk | FTP | other *** search
/ Your Choice 3 / Your Choice Software Collection 3.iso / prgmming / pcl4pb42 / simple.bas < prev    next >
BASIC Source File  |  1994-09-27  |  2KB  |  115 lines

  1. '
  2. '  SIMPLE.BAS Example Program
  3. '
  4.  
  5. $ERROR ALL ON
  6. $LIB ALL OFF
  7. $LINK "PCL4PB.OBJ"
  8. $INCLUDE "PCL4PB.BI"
  9.  
  10. 'declare variables
  11. DIM Buffer(256+16) AS BYTE
  12. DIM BufSeg AS WORD
  13. DIM Port AS INTEGER
  14. DIM Code AS INTEGER
  15. DIM I AS INTEGER
  16. DIM L AS INTEGER
  17. DIM LibVer AS INTEGER
  18. DIM BaudCode AS INTEGER
  19. DIM AnyKey AS STRING
  20. DIM RATES(12) AS STRING
  21. DIM PARMS AS STRING
  22. DIM ARG1 AS STRING
  23. DIM ARG2 AS STRING
  24.  
  25. RATES$(1) = "300"
  26. RATES$(2) = "600"
  27. RATES$(3) = "1200"
  28. RATES$(4) = "2400"
  29. RATES$(5) = "4800"
  30. RATES$(6) = "9600"
  31. RATES$(7) = "19200"
  32. RATES$(8) = "38400"
  33. RATES$(9) = "57600"
  34. RATES$(10) = "115200"
  35.  
  36. PARMS$ = RTRIM$(COMMAND$)
  37. I = INSTR(PARMS$, " ")
  38. IF I < 1 THEN
  39.   PRINT "  Usage: SIMPLE <Port> <BaudRate>"
  40.   PRINT "Example: SIMPLE 1 9600"
  41.   END
  42. END IF
  43. L = LEN(PARMS$)
  44. ARG1$ = LEFT$(PARMS$, I - 1)
  45. ARG2$ = LTRIM$(RIGHT$(PARMS$, L - I))
  46. BaudCode = -1
  47.  
  48. 'Get COM port
  49. Port = VAL(ARG1$) - 1
  50.  
  51. 'Get baud code
  52. FOR I = 1 TO 10
  53.   IF RATES$(I) = ARG2$ THEN
  54.      BaudCode = I - 1
  55.      EXIT FOR
  56.   END IF
  57. NEXT I
  58.  
  59. 'Verify good baud rate
  60. IF BaudCode = -1 THEN
  61.   PRINT "Cannot recognize baud rate "; ARG2$
  62.   STOP
  63. END IF
  64.  
  65. 'Reset port
  66. BufSeg = 1 + VARSEG(Buffer(0)) + (VARPTR(Buffer(0)) \ 16)
  67. Code = SioRxBuf(Port, BufSeg, %Size256)
  68. IF Code < 0 THEN
  69.   PRINT "Error "; Code; " returned from SioRxBuf()"
  70.   Code = SioError(Code)
  71.   STOP
  72. END IF
  73.  
  74. Code = SioReset(Port, %Baud2400)
  75.  
  76. IF Code < 0 THEN
  77.   PRINT "Error "; Code; " returned from SioReset()"
  78.   Code = SioError(Code)
  79.   STOP
  80. END IF
  81.  
  82. CLS
  83.  
  84. PRINT "SIMPLE 9/25/94"
  85. PRINT " "
  86. LibVer = SioInfo(ASC("V"))
  87. PRINT "Library Version: "; LibVer \ 16; ".";
  88. PRINT LibVer MOD 16
  89.  
  90. PRINT "Entering TERMINAL loop..."
  91.  
  92. Code = SioDTR(Port, %SET.LINE)
  93. Code = SioRTS(Port, %SET.LINE)
  94.  
  95. DO
  96.   'Anything incoming ?
  97.   Code = SioGetc(Port, 1)
  98.   IF Code = 13 THEN
  99.     PRINT
  100.   ELSEIF Code >= &H20 THEN
  101.     PRINT CHR$(Code);
  102.   END IF
  103.   'Anything to send ?
  104.   AnyKey$ = INKEY$
  105.   IF AnyKey$ <> "" THEN
  106.     'Exit if user types Escape (ESC=27)
  107.     IF AnyKey$ = CHR$(27) THEN EXIT DO
  108.     Code = SioPutc(Port,ASC(AnyKey$))
  109.   END IF
  110. LOOP
  111.  
  112. Code = SioDone(Port)
  113.  
  114. END
  115.